package cn.wp.ewallet.wmps.service;

import cn.wp.common.core.dto.WpResult;
import cn.wp.common.core.model.WpPage;
import cn.wp.ewallet.wmps.model.dto.*;
import cn.wp.ewallet.wmps.model.entity.FinaProdCountDoo;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by yangjin on 2020/1/7 11:59
 */
public interface FinaProdInfoService {

    /**
     * 查询理财产品信息
     * @param status  查询所有理财产品："all" ;  查询上架理财产品："upper"
     * @return
     */
    WpPage<FinaProdInfoDto> getFinaProdInfoList(String finaProdName, WpPage page, String status);

    /**
     * 创建理财产品
     * @param finaProdInfoDto
     * @return
     */
    void saveFinaProdInfo(FinaProdInfoDto finaProdInfoDto);

    /**
     * 创建理财产品
     * @param finaProdInfoDto
     * @return
     */
    Boolean modifyFinaProdInfo(FinaProdInfoDto finaProdInfoDto);

    /**
     * 上架理财产品
     * @param finaProdId
     */
    void upperFinaProdInfo(String finaProdId);

    /**
     * 下架理财产品
     * @param finaProdId
     */
    void lowerFinaProdInfo(String finaProdId);

    /**
     * 查看理财产品规则
     * @param finaProdId
     * @return
     */
    WpResult getFinaProdInfoRole(String finaProdId,String langCode);

    /**
     * 从SHQC账户到  天天盈产品
     * @param turnout
     * @return
     */
    WpResult turnInTianTianYingOrder(BigDecimal turnout);

    /**
     * 从天天盈账户 转出
     * @param turnIn
     * @return
     */
    WpResult turnOutTianTianYingOrder(BigDecimal turnIn);


    /**
     * 更改天天赢年化收益率
     * @param yieldRate
     * @param finaProdDesc
     */
    void modifyYieldRate(BigDecimal yieldRate, String finaProdDesc);

    /**
     * 获取天天盈配置参数
     */
    WpResult getTtyParams();

    /**
     * 定期理财产品总额信息查询
     */
    Map getFixFinaAmountInfo();

    /**
     * 定期理财产品订单信息查询
     * @return
     */
    List<PurchasedProdOrderRelDto> getFixFinaInfo(String orderStatus1, String orderStatus2);

    /**
     * 定期理财产品列表查询
     * @param finaParmDto
     * @param wpPage
     * @return
     */

    WpPage<FinaProdAddressDto> getFinaProdInfoListByParam(FinaParmDto finaParmDto, WpPage wpPage);




    /**
     * 获取所有 定期理财产品的 概览
     * @return
     */
    WpPage<FinaProdCountDto> getFixFinaProdCountDtoList(WpPage wpPage);

    /**
     * 个理定期财产品销售额 占 总的定期产品销售额的比例
     * @return
     */
    WpResult getgetFixFinaProdCountPercent();


}
